package com.codefish.framework.spring.beans.factory.support;

/**
 * IBeanDefinitionRegistry接口，作用是注册BeanDefinition
 *
 * @author <a href='https://gitee.com/hzf2281'>codefish</a>
 * @version 1.0.0
 * @since 2022/09/23 下午 04:07
 */
public interface IBeanDefinitionRegistry {
    /**
     * 获取BeanDefinition
     *
     * @param beanName
     * @return
     */
    BeanDefinition getBeanDefinition(String beanName);

    /**
     * 移除一个BeanDefinition
     *
     * @param beanName
     */
    void removeBeanDefinition(String beanName);

    /**
     * 注册一个BeanDefinition
     *
     * @param beanName
     * @param beanDefinition
     */
    void registerBeanDefinition(String beanName, BeanDefinition beanDefinition);

    /**
     * 获取当前容器中BeanDefinition的数量
     * @return  当前容器中BeanDefinition的数量
     */
    int getBeanDefinitionCount();
}
